1
จากผู้ดำเนินการแบบเร่งรีบไปสู่การประมวลผลแบบแบ่งเป็นบล็อก
AI023Lesson 3
00:00

การเปลี่ยนผ่านจาก โหมดเร่งรีบของพายทอร์ช ไปยัง ทริทอน ต้องมีการเปลี่ยนแปลงจากการมองเห็นเทนเซอร์เป็นวัตถุเดียวทั้งชิ้น ไปเป็นการมองเห็นพวกเขาเป็นชุดข้อมูลที่แยกจากกันและจัดการได้ บล็อก หรือชิ้นส่วน

1. เท็นเซอร์ของพายทอร์ชกับทริทอน

จำเป็นอย่างยิ่งที่จะต้องแยกแยะ เท็นเซอร์ของทริทอน จาก เท็นเซอร์ของพายทอร์ช. เท็นเซอร์ของพายทอร์ชคือ วัตถุพีทอนฝั่งโฮสต์ ที่ห่อหุ้มข้อมูลรูปร่าง ชนิดข้อมูล อุปกรณ์ การเคลื่อนที่ และเมตาดาต้าเก็บข้อมูล ในขณะที่ทริทอนทำงานกับ ตัวชี้ข้อมูลดิบ ภายในบล็อกหน่วยความจำเฉพาะเจาะจง ทำให้สามารถปรับปรุงระดับต่ำได้อย่างมาก

2. จุดตันของการดำเนินการแบบเร่งรีบ

ในการดำเนินการแบบเร่งรีบมาตรฐาน ทุกการดำเนินการ (เช่น การบวก แล้วตามด้วยฟังก์ชันเรลู) ต้องใช้การเรียกเคอร์เนลแยกต่างหาก และ การส่งข้อมูลไปกลับหน่วยความจำทั่วโลก. นี่คือจุดตันหลักในการคำนวณด้วยจีพียูสมัยใหม่ ทริทอนแก้ไขจุดนี้โดย รวม การดำเนินการในเคอร์เนลเดียวที่ประมวลผลบล็อกข้อมูล (เช่น 128, 256 หรือ 512 องค์ประกอบ) โดยตรงในหน่วยความจำภายในตัวประมวลผล

3. แนวคิดการประมวลผลแบบแบ่งเป็นบล็อก

แทนที่จะคิดในระดับสเกลาร์ของเธรดซูดา ทริทอนใช้ เอสพีเอ็มดี (โปรแกรมเดียว ข้อมูลหลายชุด) ในระดับบล็อก คุณเขียนเคอร์เนลเดียว และทริทอนเริ่มต้นหลายอินสแตนซ์ทั่วทั้งกริด แต่ละอินสแตนซ์ใช้ program_id เพื่อคำนวณว่าบล็อกหน่วยความจำใดที่มันครอบครอง

เท็นเซอร์พายทอร์ช[ห่อหุ้มเมตาดาต้า]บล็อก 0 (pid 0)บล็อก 1 (pid 1)บล็อก 2 (pid 2)

4. การตั้งค่าสภาพแวดล้อม

เพื่อเริ่มต้น ติดตั้งทริทอนในสภาพแวดล้อมที่สะอาด (โดยใช้คอนดาหรือเวนว) เพื่อให้มั่นใจว่าไม่มีความขัดแย้งระหว่างการพึ่งพา กับเครื่องมือซูดาที่มีอยู่เดิม: pip install triton.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>